Miniaturization of video cameras in the recent years and inclusion of powerful zooms have led in these devices to an image stability problem, owing to the movement of the handheld video camera. Digital image stabilizing (DIS) systems have then been developed in order to remove this unwanted camera movement—or jitter—and thus to produce a sequence displaying requisite camera movement only and providing a more pleasant viewing experience. Jitter, defined as all the undesired positional fluctuations (translation, rotation, etc. . . ) of the image that are added to the intentional motion of the camera, can have a lot of significant adverse effects (for example, on motion estimation coding, since it may increase the magnitude or the number of the motion vectors and therefore a decrease in the run length of encoded motion vectors). In most DIS systems, a motion estimation is performed between two successive frames (at times t−1 and t) in order to get the global motion of the image frame. Said global motion is represented by a single vector called the global motion vector GMV(t). The problem is that the successive values GMV(t) contain both the intentional motion and the unintentional one Oitter).
The document “Fast digital image stabilizer based on Gray-coded bit-plane matching”, IEEE Transactions on Consumer Electronics, vol.45, n°3, August 1999, pp. 598-603, describes a motion correction system allowing to decide whether the motion is intentional or not. To that end, the global motion vector is integrated with a damping coefficient, and the integrated motion vector IMV(t) thus defined designates the final motion vector correction to be applied to the current raw frame for motion correction. This integrated motion vector, provided for constructing a stabilized sequence, is given by the expression (1):IMV(t)=a . IMV(t−1)+GMV(t)   (1)where GMV(t) is the global motion vector for the current frame considered at the time t and a is a number comprised between 0 and 1 and playing a role according to which the integrated motion vector converges to zero when there is no camera motion. The choice of this number a, which is a damping factor, depends on the degree of stabilization desired, but it is crucial considering the type of camera motion, and the use of a constant value (for example) is often sub-optimal.
In fact, separating the intentional motion from jitter over the course of a sequence is always a complex problem. For a real-time application, the main constraint is moreover that no delay is allowed, i.e. it is not possible to store some frames in memory and to apply the motion correction later, once the movement can be better known. All the solutions proposed to that end in the literature have more or less the same drawback: the jitter is attenuated—but not cancelled—in portions of sequences that have a low amplitude jitter and fixed position, but as soon as there is a panoramic motion or any other type of strong camera motion, the output filtered sequence hardly follows the real motion or follows it after a long delay. Moreover, the sampling window used for filtering causes a delay that is noticeable when correcting low amplitude jitter. There is consequently a trade-off between the strength for attenuating low amplitude jitter and the ability to follow intentional motion with a delay as low as possible.